package com.AdvancedDemos.动态代理;

/**
 * 事务>>AOP>>动态代理>>面向对象的思想
 * <p>
 * 类与类之间的关系：
 * 1.继承关系(含实现接口)
 * 2.聚合关系(A类对象是B类的成员变量)
 * 3.代理关系
 */
public class ArrayList扩展成栈_运行类 {

//    需求：通过聚合关系,不修改arrayList的源代码，扩展其功能实现栈结构(先进后出)

    public static void main(String[] args) {

        //创建自定义的栈对象
        ArrayList扩展成栈<String> stack = new ArrayList扩展成栈<>();

        //压栈
        stack.push("刘邦");
        stack.push("萧何");
        stack.push("韩信");
        stack.push("张良");

        //弹栈
        String pop = stack.pop();
        System.out.println(pop);
    }
}
